「從數字到順序」的演算法目的是逐步縮小範圍,確定數字和其位置。這個過程通過改變數字位置來確定其正確順序,依賴玩家的邏輯推理和策略。
優點:
缺點:
刪去法利用窮舉的方式,列出所有可能答案,並從中隨機選擇一個作為猜測。
優點:
缺點:
分類最優化策略是較為複雜的演算法,提高了猜測的效率,保證在較少次數內找到正確答案。
每次猜測後,根據得到的 A 和 B 的數量,排除不可能的組合,將剩餘可能的數字組合定義為「剩餘可能答案」。第 N 次猜測後的剩餘可能答案必然是第 N 次猜測的子集。
每次猜測後,會得到不同的 A 和 B 的回覆,這些回覆可以分為 14 種情況(如 0A0B、1A2B 等)。每次猜測將剩餘的可能答案分類到這 14 種情況中。
不同的猜測數字會導致不同的分類情況。我們希望選擇一個能將數字分得最「平均」的猜測數字。所謂的「平均」是指將最多元素的類別的數量降至最低。
例如,在某次遊戲中,現有的條件為:
程式計算得到可能答案為 2754、2854、4396、4936、9346。最佳猜測不在這 5 個數字中,而是 0397。當猜測 0397 後,如果答案是 2754,其回覆為 0A1B;如果答案是 2854,其回覆為 0A0B。如此下去,兩次猜測內即可找到正確答案。
在猜數字遊戲中,各種演算法各有優缺點。「從數字到順序」和「刪去法」雖然簡單,但未必最佳。而分類最優化策略通過每次猜測後的分類和篩選,提高了猜測的準確性。
另外,我有自己按照上面想法寫的猜數字程式,懂程式的人可以看看,猜數字(自動判斷)程式,它會讓你輸入答案然後自動玩遊戲,如果不相信電腦沒偷看答案那就用這版的猜數字程式(自行輸入)